package com.yazi.mxz.person.jackson.filter;

import java.util.HashSet;
import java.util.Set;

import com.fasterxml.jackson.databind.ser.FilterProvider;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
import com.yazi.mxz.common.entity.beans.Spec;
import com.yazi.mxz.common.entity.beans.SpecType;

/**
 * json结构定义－商品规格类型
 *
 * @author mo_yq5
 * @since 2016年6月1日
 */
public abstract class SpecTypeFilter {

	/**
	 * 规格类型及其规格列表
	 * 
	 * @since 2016年6月1日
	 * @return
	 */
	public static FilterProvider getWithSpecs() {
		final Set<String> specType = new HashSet<String>();
		specType.add("specTypeId");
		specType.add("name");
		specType.add("sort");
		specType.add("specs");
		final Set<String> spec = new HashSet<String>();
		spec.add("specId");
		spec.add("name");
		spec.add("icon");
		spec.add("sort");

		return new SimpleFilterProvider().addFilter(
				SpecType.class.getSimpleName(),
				SimpleBeanPropertyFilter.filterOutAllExcept(specType))
				.addFilter(Spec.class.getSimpleName(),
						SimpleBeanPropertyFilter.filterOutAllExcept(spec));
	}

}
